<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>06函数</title>
</head>
<body>
<script>
    //1.函数的定义
    function f1(){
        console.log("我是函数f1");
    }
    f1();
    f1();

    //2.函数的参数
    function f2(n){
        console.log("我是函数f2,参数是"+n);
    }
    f2("报告我是f2,哈哈哈哈哈哈");

    //3.形参与实参的个数问题(实参必须大于形参)
    function f3(x,y){
        console.log(x+y);
    }
    f3(1,2);//3
    f3(1,2,3);//3  多余的参数会被忽略
    f3(0); //0+undefined=NaN

    //4.arguments 作用:保存函数的参数列表(有多少参数)
    function f4(){
        console.log(arguments);
    }
    f4(1);//Arguments [1, callee: ƒ, Symbol(Symbol.iterator): ƒ
    f4(1,2);//Arguments [1, 2, callee: ƒ, Symbol(Symbol.iterator): ƒ]
    f4(1,2,3,4);//Arguments [1, 2, 3, 4, callee: ƒ, Symbol(Symbol.iterator): ƒ]

    //5.函数的返回值
    function f5(x,y){
        return x+y;
    }
    let num = f5(1,2);
    console.log(num);//定义一个变量保存函数的返回值,再打印出来
    console.log(f5(3,4));//直接打印函数的返回值

    //6.函数的第二中声明方式:
    //将函数整体交给变量f6来保存,调用时使用变量名调用即可
    var f6 = function (x,y){
        return x+y;
    }
    var a= f6(10,20);
    console.log(a);
    console.log(typeof f6);

    //7.箭头函数
    /*
    * 三种定义方法的方式:
    *       function 方法名 (参数列表) {方法体}
    *       let 方法名 = function (参数列表) {方法体}
    *       const 方法名 = (参数列表) => {方法体}
    * */
    const f7 = (x) => {
      console.log(x);
    }
    f7("郭伟杰");

</script>
</body>
</html>